// 获取用户列表，支持分页和查询
import request from '@/utils/request'

// 获取用户列表
export function getUserList() {
  // params: { pageNum, pageSize, username, email, role }
  return request({
    url: '/users?page=1&size=10',
    method: 'get'
  })



}

// 获取用户详情
export function getUserDetail(userId) {
  return request({
    url: `/users/${userId}`,
    method: 'get'
  })
}

// 新增用户
export function addUser(data) {
  return request({
    url: '/users',
    method: 'post',
    data
  })
}

// 更新用户
export function updateUser(data) {
  return request({
    url: `/users/${data.id}`,
    method: 'put',
    data
  })
}

// 删除用户
export function deleteUser(userId) {
  return request({
    url: `/users/${userId}`,
    method: 'delete'
  })
}

// 修改密码
export function changePassword(userId, data) {
  return request({
    url: `/users/${userId}/ChangePassword`,
    method: 'post',
    data
  })
}

// 启用用户
export function enableUser(userId) {
  return request({
    url: `/users/${userId}/enable`,
    method: 'post'
  })
}

// 禁用用户
export function disableUser(userId) {
  return request({
    url: `/users/${userId}/disable`,
    method: 'post'
  })
}

// 分配角色
export function assignRoles(userId, roleIds) {
  return request({
    url: `/users/${userId}/roles`,
    method: 'post',
    data: { roleIds }
  })
}

// 获取用户当前角色
export function getUserRoles(userId) {
  return request({
    url: `/users/${userId}/roles`,
    method: 'get'
  })
}

//分页
export let getUserListPage=(obj)=>{
  const params = new URLSearchParams();
  
  // 基础分页参数
  params.append('page', obj.page || 1);
  params.append('size', obj.size || obj.pageSize || 10);
  
  // 筛选参数
  if (obj.userName) {
    params.append('userName', obj.userName);
  }
  if (obj.email) {
    params.append('email', obj.email);
  }
  if (obj.role) {
    params.append('role', obj.role);
  }
  if (obj.status) {
    params.append('status', obj.status);
  }
  if (obj.search) {
    params.append('search', obj.search);
  }
  
  return request({
    url: `/users?${params.toString()}`,
    method: 'get'
  })
}

// 上传用户头像
export function uploadAvatar(userId, formData) {
  return request({
    url: `/users/${userId}/avatar`,
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    },
    timeout: 30000 // 增加超时时间，因为文件上传可能需要更长时间
  })
}

// 获取用户头像信息
export function getAvatarInfo(userId) {
  return request({
    url: `/users/${userId}/avatar-info`,
    method: 'get'
  })
}
//获取角色列表
export let getRoleList=()=>{
  return request({
    url:'/roles',
    method:'get'
  })
}
//刷新token
export let refreshToken=(refreshToken)=>{
  return request({
    url:`/auths/refresh`,
    method:'post',
    data:{
      refreshToken
    }
  })
}